package br.com.cicero.futebol.controle;

import java.util.HashMap;
import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

@ManagedBean
public class AutenticadorBean {
	
	private static Map<String, String> mapa = new HashMap<String, String>();
	private String usuario;
	private String senha;
	
	static {
		
		AutenticadorBean.mapa.put("usr01", "usr01");
		AutenticadorBean.mapa.put("admin", "admin");
		AutenticadorBean.mapa.put("root", "root");
		
	}
	
	public String autentica() {
		
		FacesContext context = FacesContext.getCurrentInstance();
		
		if (AutenticadorBean.mapa.containsKey(this.usuario)
				&& AutenticadorBean.mapa.get(this.usuario).equals(this.senha)) {
			
			ExternalContext ec = context.getExternalContext();
			HttpSession session = (HttpSession) ec.getSession(false);
			session.setAttribute("usuario", this.usuario);
			
			return "times";
						
		} else {
			
			this.usuario = null;
			this.senha = null;
			
			FacesMessage message = new FacesMessage("Usuário e/ou senha inválidos");
			message.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, message);
			
			return "login";
			
		}
				
	}
	
	public String registraSaida() {
		
		FacesContext context = FacesContext.getCurrentInstance();
		ExternalContext ec = context.getExternalContext();
		HttpSession session = (HttpSession) ec.getSession(false);
		session.removeAttribute("usuario");
		
		return "login";
		
	}

	public static Map<String, String> getMapa() {
		return mapa;
	}

	public static void setMapa(Map<String, String> mapa) {
		AutenticadorBean.mapa = mapa;
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}
	
}
